/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. 
 */
package com.icinfo.cloud.provider.punish.config.service;

import com.icinfo.cloud.provider.punish.approval.vo.NextAuditUserVo;
import com.icinfo.cloud.provider.punish.config.dto.ConfigAllRoleInfoRequest;
import com.icinfo.cloud.provider.punish.config.dto.ConfigDefaultApprovalPersonRequest;
import com.icinfo.cloud.provider.punish.config.dto.ConfigDefaultApprovalPersonSaveDto;
import com.icinfo.cloud.provider.punish.config.dto.ConfigDefaultUserInfoRequest;
import com.icinfo.cloud.provider.punish.config.model.ConfigDefaultApprovalPerson;
import com.icinfo.cloud.provider.punish.config.vo.ConfigAllRoleInfoVo;
import com.icinfo.cloud.provider.punish.config.vo.ConfigDefaultApprovalPersonVo;
import com.icinfo.cloud.provider.punish.config.vo.ConfigDefaultUserInfoVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.model.CaseMainInfo;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述:  config_default_approval_person 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年12月05日
 */
public interface IConfigDefaultApprovalPersonService extends BaseService {
    /**
     * 查询默认审批人
     * @author liyafeng
     * @date 2022/12/8
      * @param request
     * @return {@link List< ConfigDefaultApprovalPerson>}
     */
    List<ConfigDefaultApprovalPersonVo> getConfigDefaultApprovalPersonList(ConfigDefaultApprovalPersonRequest request);
    /**
     * 保存默认审批人
     * @author liyafeng
     * @date 2022/12/8
      * @param saveDto
     * @return {@link int}
     */
    int saveConfigDefaultApprovalPerson(ConfigDefaultApprovalPersonSaveDto saveDto);
    /**
     * 根据角色获取人员信息
     * @author liyafeng
     * @date 2022/12/8
      * @param request
     * @return {@link ConfigDefaultApprovalPersonVo}
     */
    ConfigDefaultUserInfoVo getConfigDefaultApprovalPersonVo(ConfigDefaultUserInfoRequest request);
    /**
     * 根据单位编码获取所有审批角色
     * @author liyafeng
     * @date 2022/12/11
      * @param request
     * @return {@link ConfigAllRoleInfoVo}
     */
    ConfigAllRoleInfoVo getAllRoleInfo(ConfigAllRoleInfoRequest request);
    /**
     * 获取默认审批人
     * @author liyafeng
     * @date 2022/12/11
      * @param caseMainInfo
     * @param roleId
     * @return {@link NextAuditUserVo}
     */
    NextAuditUserVo getNextAuditUserVo(CaseMainInfo caseMainInfo, String roleId,String documentCatalogCode);
}